<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>正则</title>
</head>

<body>
    <h4>1.使用typeOf abc === "object" 判断abc是否是对象,存在什么弊端,如何避免这种弊端</h4>
    <h5>答：typeOf不能精准的判断object类型，应为typeOf []，{}，new(function(){})，null 都返回object</h5>
    <label>2.是否含有数字</label>
    <input type="text" class="number"></input>
    <button class="num-btn">测试</button>
    <p></p>
    <label>3.是否有重复的内容</label>
    <input type="text" class="repeat"></input>
    <button class="repeat-btn">测试</button>
    <h4>4.什么是全局变量,如何用立即执行的方法避免全局变量 在全局中定义 var a/a 有什么区别 在函数中 var a/a 又有什么区别 在全局中 var a delete a;能成功me?如果不能,为什么.</h4>
    <h5>答：全局变量:var（关键字）+变量名（标识符）的方式在function外部声明。
        <p>var a 在全局域中是全局变量，在当前域中（函数）中是局部变量，并且不可删除</p>
        <p>a 在全局域中是全局对象,在当前域（函数）中若找到变量定义为赋值,若找不到就为全局对象,并且可以删除</p>
        <p>var a delete a;无法删除,因为变量声明自带不可删除属性</p>
    </h5>
</body>
<script>
    var numBtn = document.querySelector(".num-btn");
    var repeatBtn = document.querySelector(".repeat-btn");
    numBtn.addEventListener("click", function(e) {
        var number = document.querySelector(".number");
        var check = /\d+/;
        if (check.test(number.value)) {
            alert("有数字");
        } else {
            alert("没有数字");
        }
    })
    repeatBtn.addEventListener("click", function(e) {
        var repeat = document.querySelector(".repeat").value;
        var check = /^.*([A-Za-z0-9]).*\1.*$/g;
        if (check.test(repeat)) {
            alert("有重复");
        } else {
            alert("没有重复");
        }
    })
</script>

</html>